package alipay

import (
	"crmeb-common/global"
	"math/big"
	"time"
)

// AliPayCallback 支付宝回调表
type AliPayCallback struct {
	global.BaseModel
	NotifyType string `json:"notifyType" gorm:"column=notify_type;comment:通知的类型"`

	NotifyId string `json:"notifyId" gorm:"column=notify_id;comment:通知校验 ID"`

	AppId string `json:"appId" gorm:"column=app_id;comment:支付宝分配给开发者的应用 ID"`

	Charset string `json:"charset" gorm:"column=charset;comment:编码格式，如 utf-8、gbk、gb2312 等"`

	Version string `json:"version" gorm:"column=version;comment:调用的接口版本，固定为：1.0"`

	SignType string `json:"signType" gorm:"column=sign_type;comment:商户生成签名字符串所使用的签名算法类型，目前支持 RSA2 和 RSA，推荐使用 RSA2"`

	Sign string `json:"sign" gorm:"column=sign;comment:签名"`

	TradeNo string `json:"tradeNo" gorm:"column=trade_no;comment:支付宝交易凭证号"`

	OutTradeNo string `json:"outTradeNo" gorm:"column=out_trade_no;comment:原支付请求的商户订单号"`

	TradeStatus string `json:"tradeStatus" gorm:"column=trade_status;comment:交易目前所处的状态:WAIT_BUYER_PAY-交易创建，等待买家付款,TRADE_CLOSED-未付款交易超时关闭，或支付完成后全额退款,3-交易支付成功,4-交易结束，不可退款"`

	TotalAmount big.Float `json:"totalAmount" gorm:"column=total_amount;comment:本次交易支付的订单金额，单位为人民币（元）"`

	ReceiptAmount big.Float `json:"receiptAmount" gorm:"column=receipt_amount;comment:商家在交易中实际收到的款项，单位为人民币（元）"`

	RefundFee big.Float `json:"refundFee" gorm:"column=refund_fee;comment:退款通知中，返回总退款金额，单位为人民币（元），支持两位小数"`

	Subject string `json:"subject" gorm:"column=subject;comment:商品的标题/交易标题/订单标题/订单关键字等，是请求时对应的参数，原样通知回来"`

	Body string `json:"body" gorm:"column=body;comment:该订单的备注、描述、明细等。对应请求时的 body 参数，原样通知回来"`

	PassbackParams string `json:"passbackParams" gorm:"column=passback_params;comment:公共回传参数，如果请求时传递了该参数，则返回给商户时会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝。"`

	NotifyTime time.Time `json:"notifyTime" gorm:"column=notify_time;comment:通知的发送时间。格式为 yyyy-MM-dd HH:mm:ss"`

	AddTime time.Time `json:"addTime" gorm:"column=add_time;comment:创建时间"`
}
